﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FrbaBus;
using System.Data.SqlClient;

// Created libraries
using FrbaBus.Core;

namespace FrbaBus
{
    public partial class Funcionalidades : Form
    {
        

        public Funcionalidades()
        {
            InitializeComponent();
        }

        private void Main_Load(object sender, EventArgs e)
        {
            string usuariovalor = "";

            btn_GenerarViaje.Visible = false;
            btnCiudad.Visible = false;
            btnCnjPuntos.Visible = false;
            btnCompraPasajes.Visible = false;
            btnMicro.Visible = false;
            btnRecorrido.Visible = false;
            btnRegistrarLLegada.Visible = false;
            btnRol.Visible = false;
            Login.Login frm = new Login.Login();
            frm.ShowDialog(this);
            DBManager db = new DBManager();
            SqlCommand consulta55 = new SqlCommand("UPDATE ALL_IN.Fecha_Actual set Fecha= CONVERT(datetime,'" + System.Configuration.ConfigurationManager.AppSettings["Fecha"] + "',120)");
            db.executeQuery(consulta55);
            usuariovalor = Login.Login.usuariovalor;
            label4.Text = usuariovalor;
            

            if (usuariovalor == "")
            {
                this.Close();
                return;
            }

            
            //this.Show();

            SqlCommand consulta = new SqlCommand("select f.nombre from ALL_IN.usuario u join ALL_IN.RolxFuncionalidad r on u.Rol=r.nombre join ALL_IN.Funcionalidad f on f.ID_Funcionalidad=r.ID_Funcionalidad where u.userId='" + usuariovalor + "'");
            SQLResponse r = db.executeQuery(consulta);

            SqlCommand consulta2 = new SqlCommand("select count(f.nombre) from ALL_IN.usuario u join ALL_IN.RolxFuncionalidad r on u.Rol=r.nombre join ALL_IN.Funcionalidad f on f.ID_Funcionalidad=r.ID_Funcionalidad where u.userId='" + usuariovalor + "'");
            SQLResponse r2 = db.executeQuery(consulta2);

            int valor = (int)r2.result.Rows[0][0];
            for (int i = 0; i < valor; i++)
            {
                if (r.result.Rows[i][0].ToString() == "ABM de Rol")
                {
                    btnRol.Visible = true;
                }
                //if (r.result.Rows[i][0].ToString() == "Registro de Usuario") //VEEERRR!
                //{
                //    btnRol.Visible = true;
                //}
                if (r.result.Rows[i][0].ToString() == "ABM de Ciudad")
                {
                    btnCiudad.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "ABM de Recorrido")
                {
                    btnRecorrido.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "ABM de Micro")
                {
                    btnMicro.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Generacion de Viaje")
                {
                    btn_GenerarViaje.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Registro de llegada a Destino")
                {
                    btnRegistrarLLegada.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Compra de pasaje/encomienda")
                {
                    btnCompraPasajes.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Devolucion/Cancelacion de pasaje y/o encomienda")
                {
                    bntCancelarViaje.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Consulta de puntos de pasajero frecuente")
                {
                    btn_ConsultaPuntos.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Canje de puntos de pasajero frecuente")
                {
                    btnCnjPuntos.Visible = true;
                }
                if (r.result.Rows[i][0].ToString() == "Listado Estadistico")
                {
                    ListadoEstadistico.Visible = true;
                }

            }
            this.Show();

        }

        private void btnRecorrido_Click(object sender, EventArgs e)
        {
            Abm_Recorrido.Form1 frm = new Abm_Recorrido.Form1();
            frm.ShowDialog();
        }

        private void btnRol_Click(object sender, EventArgs e)
        {
          Abm_Rol.Rol frm = new Abm_Rol.Rol();
            frm.ShowDialog();
        }

        private void btnCnjPuntos_Click(object sender, EventArgs e)
        {
            Canje_de_Ptos.CanjePuntosAdmin frm = new Canje_de_Ptos.CanjePuntosAdmin();
            frm.ShowDialog();
        }

        private void btnMicro_Click(object sender, EventArgs e)
        {
            Abm_Micro.ABMMicro frm = new Abm_Micro.ABMMicro();
            frm.ShowDialog();
        }

        private void bntCancelarViaje_Click(object sender, EventArgs e)
        {
            Cancelar_Viaje.ABMCancelarVoE frm = new Cancelar_Viaje.ABMCancelarVoE();
            frm.ShowDialog();
        }

        private void btnCompraPasajes_Click(object sender, EventArgs e)
        {
            Compra_de_Pasajes.CompraPasajes frm = new Compra_de_Pasajes.CompraPasajes();
            frm.ShowDialog();
        }

        private void btnConsultaPuntos_Click(object sender, EventArgs e)
        {
            Consulta_Puntos_Adquiridos.ConsultaPuntos frm = new Consulta_Puntos_Adquiridos.ConsultaPuntos();
            frm.ShowDialog();
        }

        private void btnGenerarViaje_Click(object sender, EventArgs e)
        {
            GenerarViaje.GenerarViaje frm = new GenerarViaje.GenerarViaje();
            frm.ShowDialog();
        }

        //private void btnLogin_Click(object sender, EventArgs e)
        //{
        //    Login.Login frm = new Login.Login();
        //    frm.ShowDialog();
        //}

        private void btnRegistrarLLegada_Click(object sender, EventArgs e)
        {
            Registrar_LLegada_Micro.RegistrarLLegada frm = new Registrar_LLegada_Micro.RegistrarLLegada();
            frm.ShowDialog();
        }

        private void ListadoEstadistico_Click(object sender, EventArgs e)
        {
            ListadoEstadistico.ListadoEstadistico frm = new ListadoEstadistico.ListadoEstadistico();
            frm.ShowDialog();
        }

        private void btnCiudad_Click(object sender, EventArgs e)
        {
            Abm_Ciudad.Ciudad frm = new Abm_Ciudad.Ciudad();
            frm.ShowDialog();
            //frm.DialogResult(
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Canje_de_Ptos.CanjePuntos frm = new Canje_de_Ptos.CanjePuntos();
            frm.ShowDialog(this);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //this.Close();
            this.Hide();
            //this.InitializeComponent();
            this.Main_Load(null,null);            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
